/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.garcomeletronico.controlador.implementacao;

import br.com.garcomeletronico.controlador.IControladorFuncionario;
import br.com.garcomeletronico.dao.IDAOFuncionario;
import br.com.garcomeletronico.dao.implementacao.DAOFuncionario;
import br.com.garcomeletronico.bean.Funcionario;
import java.sql.SQLException;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Rivi
 */
public class ControladorFuncionario implements IControladorFuncionario {

    private IDAOFuncionario repositorio;

    public ControladorFuncionario() {
        if (repositorio == null) {
            repositorio = new DAOFuncionario();
        }
    }

    @Override
    public void inserir(Funcionario f) throws SQLException {
        this.validarPreInserir(f);
        this.repositorio.inserir(f);
    }
    
    private void validarPreInserir(Funcionario funcionario) throws SQLException {
        if (funcionario.getNome().trim().equals("") && funcionario.getCpf().trim().equals("") && funcionario.getCargo().trim().equals("")) {
            throw new SQLException("Campos não preenchidos!");
            //throw new SQLException("Nome em branco, por favor preencher o nome!");
        }
        /**
        if (funcionario.getCpf().trim().equals("")){
            throw new SQLException("Cpf em branco, por favor preencher o cpf!");
        }
        if (funcionario.getCargo().trim().equals("")){
            throw new SQLException("Cargo em branco, for favor preencher o cargo!");
        }**/
    } 
    
    @Override
    public void excluir(Funcionario f )throws SQLException{
        this.repositorio.excluir(f);
    }
    
    @Override
    public void alterar(Funcionario f) throws SQLException{
        this.repositorio.alterar(f);
    }
    
   
    @Override
    public List<Funcionario> listarPorNome(Funcionario f) throws SQLException {
        return validarLista(this.repositorio.listarPorNome(f));
    }

    @Override
    public List<Funcionario> listarTodos() throws SQLException {
        return validarLista(this.repositorio.listarTodos());
    }

    
    private List<Funcionario> validarLista(List<Funcionario> funcionarios) throws SQLException {
        if (funcionarios == null) {
            throw new SQLException("Nenhum funcionário encontrado!");
        }

        return funcionarios;
    }
}
